package com.ssm.socket;

import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;

import java.util.UUID;

/**
 * 针对监测站点报文解析类
 */
public class Analysis {

    /**
     * 将报文解析成json格式字符串
     * @param content
     * @return String
     */
    public String strToJson(String content) {

        try {
            //截取校验码前面的报文
            String str = StringUtils.substringBeforeLast(content, "&&");
            //将报文中含有逗号替换成分号
            String rep =
                    StringUtils.replace(str, ",",
                            ";");
            //跟据分号拆分成字符串数组
            String [] arr = StringUtils.split(rep, ";");
            //生成唯一标识id
            String id = "lv_" + UUID.randomUUID().toString();
            //去第一位数据作为上报时间
            String creTime =  StringUtils.substringAfter(arr[0], "=");
            //设置json格式报文
            JSONObject json = new JSONObject();
            json.put("_id", id);
            //需要把creTime设置成long类型
            json.put("creTime", Long.parseLong(creTime));
            for (int i = 1;i < arr.length;i++) {
                String key = StringUtils.substringBefore(arr[i], "=");
                String value = StringUtils.substringAfter(arr[i], "=");
                json.put(key, value);
            }
            return json.toJSONString();
        } catch (RuntimeException e) {
            e.printStackTrace();
            return null;
        }
    }
}
